package com.bentley.kotlindemo.base

import android.view.View
import androidx.databinding.ViewDataBinding
import androidx.lifecycle.ViewModel
import com.bentley.kotlindemo.ui.widget.status.MultipleStateView

/**
 * <pre>
 *  ┌────────────────────────────────────────────
 *  │ @author  Lee  @date 2021/3/26 11:13
 *  ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
 *  │ @desc 多状态卡片
 *  └────────────────────────────────────────────
 * </pre>
 */

abstract class BaseStateViewFragment<T : ViewDataBinding, V : ViewModel> : BaseFragment<T,V>() {
    fun showLoadingView() {
        getMultipleStateView().showLoading()
    }

    fun showNetError(onClickListener: () -> Unit = {}) {
        getMultipleStateView().showNetError(View.OnClickListener { onClickListener() })
    }

    fun showEmpty(onClickListener: () -> Unit = {}) {
        getMultipleStateView().showEmpty(View.OnClickListener { onClickListener() })
    }

    fun showContent() {
        getMultipleStateView().showContent()
    }


    /**
     * 获取多状态布局
     */
    abstract fun getMultipleStateView(): MultipleStateView
}